<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>25. Graphical User Interfaces with Tk &mdash; Python v2.6.2 documentation</title>
    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '2.6.2',
        COLLAPSE_MODINDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <link rel="search" type="application/opensearchdescription+xml"
          title="Search within Python v2.6.2 documentation"
          href="../_static/opensearch.xml"/>
    <link rel="author" title="About these documents" href="../about.html" />
    <link rel="copyright" title="Copyright" href="../copyright.html" />
    <link rel="top" title="Python v2.6.2 documentation" href="../index.html" />
    <link rel="up" title="The Python Standard Library" href="index.html" />
    <link rel="next" title="25.1. Tkinter — Python interface to Tcl/Tk" href="tkinter.html" />
    <link rel="prev" title="24.2. shlex — Simple lexical analysis" href="shlex.html" />
    <link rel="shortcut icon" type="image/png" href="../_static/py.png" />
 

  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../modindex.html" title="Global Module Index"
             accesskey="M">modules</a> |</li>
        <li class="right" >
          <a href="tkinter.html" title="25.1. Tkinter — Python interface to Tcl/Tk"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="shlex.html" title="24.2. shlex — Simple lexical analysis"
             accesskey="P">previous</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="../index.html">Python v2.6.2 documentation</a> &raquo;</li>

          <li><a href="index.html" accesskey="U">The Python Standard Library</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="graphical-user-interfaces-with-tk">
<span id="tkinter"></span><h1>25. Graphical User Interfaces with Tk<a class="headerlink" href="#graphical-user-interfaces-with-tk" title="Permalink to this headline">¶</a></h1>
<p id="index-668">Tk/Tcl has long been an integral part of Python.  It provides a robust and
platform independent windowing toolkit, that is available to Python programmers
using the <a title="Interface to Tcl/Tk for graphical user interfaces" class="reference external" href="tkinter.html#module-Tkinter"><tt class="xref docutils literal"><span class="pre">Tkinter</span></tt></a> module, and its extension, the <a title="Tk Extension Widgets for Tkinter" class="reference external" href="tix.html#module-Tix"><tt class="xref docutils literal"><span class="pre">Tix</span></tt></a> module.</p>
<p>The <a title="Interface to Tcl/Tk for graphical user interfaces" class="reference external" href="tkinter.html#module-Tkinter"><tt class="xref docutils literal"><span class="pre">Tkinter</span></tt></a> module is a thin object-oriented layer on top of Tcl/Tk. To
use <a title="Interface to Tcl/Tk for graphical user interfaces" class="reference external" href="tkinter.html#module-Tkinter"><tt class="xref docutils literal"><span class="pre">Tkinter</span></tt></a>, you don&#8217;t need to write Tcl code, but you will need to
consult the Tk documentation, and occasionally the Tcl documentation.
<a title="Interface to Tcl/Tk for graphical user interfaces" class="reference external" href="tkinter.html#module-Tkinter"><tt class="xref docutils literal"><span class="pre">Tkinter</span></tt></a> is a set of wrappers that implement the Tk widgets as Python
classes.  In addition, the internal module <tt class="xref docutils literal"><span class="pre">_tkinter</span></tt> provides a threadsafe
mechanism which allows Python and Tcl to interact.</p>
<p><a title="Interface to Tcl/Tk for graphical user interfaces" class="reference external" href="tkinter.html#module-Tkinter"><tt class="xref docutils literal"><span class="pre">Tkinter</span></tt></a>&#8216;s chief virtues are that it is fast, and that it usually comes
bundled with Python. Although its standard documentation is weak, good
material is available, which includes: references, tutorials, a book and
others. <a title="Interface to Tcl/Tk for graphical user interfaces" class="reference external" href="tkinter.html#module-Tkinter"><tt class="xref docutils literal"><span class="pre">Tkinter</span></tt></a> is also famous for having an outdated look and feel,
which has been vastly improved in Tk 8.5. Nevertheless, there are many other
GUI libraries that you could be interested in. For more information about
alternatives, see the <a class="reference external" href="othergui.html#other-gui-packages"><em>Other Graphical User Interface Packages</em></a> section.</p>
<ul>
<li class="toctree-l1"><a class="reference external" href="tkinter.html">25.1. <tt class="docutils literal"><span class="pre">Tkinter</span></tt> &#8212; Python interface to Tcl/Tk</a><ul>
<li class="toctree-l2"><a class="reference external" href="tkinter.html#tkinter-modules">25.1.1. Tkinter Modules</a></li>
<li class="toctree-l2"><a class="reference external" href="tkinter.html#tkinter-life-preserver">25.1.2. Tkinter Life Preserver</a><ul>
<li class="toctree-l3"><a class="reference external" href="tkinter.html#how-to-use-this-section">25.1.2.1. How To Use This Section</a></li>
<li class="toctree-l3"><a class="reference external" href="tkinter.html#a-simple-hello-world-program">25.1.2.2. A Simple Hello World Program</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference external" href="tkinter.html#a-very-quick-look-at-tcl-tk">25.1.3. A (Very) Quick Look at Tcl/Tk</a></li>
<li class="toctree-l2"><a class="reference external" href="tkinter.html#mapping-basic-tk-into-tkinter">25.1.4. Mapping Basic Tk into Tkinter</a></li>
<li class="toctree-l2"><a class="reference external" href="tkinter.html#how-tk-and-tkinter-are-related">25.1.5. How Tk and Tkinter are Related</a></li>
<li class="toctree-l2"><a class="reference external" href="tkinter.html#handy-reference">25.1.6. Handy Reference</a><ul>
<li class="toctree-l3"><a class="reference external" href="tkinter.html#setting-options">25.1.6.1. Setting Options</a></li>
<li class="toctree-l3"><a class="reference external" href="tkinter.html#the-packer">25.1.6.2. The Packer</a></li>
<li class="toctree-l3"><a class="reference external" href="tkinter.html#packer-options">25.1.6.3. Packer Options</a></li>
<li class="toctree-l3"><a class="reference external" href="tkinter.html#coupling-widget-variables">25.1.6.4. Coupling Widget Variables</a></li>
<li class="toctree-l3"><a class="reference external" href="tkinter.html#the-window-manager">25.1.6.5. The Window Manager</a></li>
<li class="toctree-l3"><a class="reference external" href="tkinter.html#tk-option-data-types">25.1.6.6. Tk Option Data Types</a></li>
<li class="toctree-l3"><a class="reference external" href="tkinter.html#bindings-and-events">25.1.6.7. Bindings and Events</a></li>
<li class="toctree-l3"><a class="reference external" href="tkinter.html#the-index-parameter">25.1.6.8. The index Parameter</a></li>
<li class="toctree-l3"><a class="reference external" href="tkinter.html#images">25.1.6.9. Images</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference external" href="tix.html">25.2. <tt class="docutils literal"><span class="pre">Tix</span></tt> &#8212; Extension widgets for Tk</a><ul>
<li class="toctree-l2"><a class="reference external" href="tix.html#using-tix">25.2.1. Using Tix</a></li>
<li class="toctree-l2"><a class="reference external" href="tix.html#tix-widgets">25.2.2. Tix Widgets</a><ul>
<li class="toctree-l3"><a class="reference external" href="tix.html#basic-widgets">25.2.2.1. Basic Widgets</a></li>
<li class="toctree-l3"><a class="reference external" href="tix.html#file-selectors">25.2.2.2. File Selectors</a></li>
<li class="toctree-l3"><a class="reference external" href="tix.html#hierarchical-listbox">25.2.2.3. Hierarchical ListBox</a></li>
<li class="toctree-l3"><a class="reference external" href="tix.html#tabular-listbox">25.2.2.4. Tabular ListBox</a></li>
<li class="toctree-l3"><a class="reference external" href="tix.html#manager-widgets">25.2.2.5. Manager Widgets</a></li>
<li class="toctree-l3"><a class="reference external" href="tix.html#image-types">25.2.2.6. Image Types</a></li>
<li class="toctree-l3"><a class="reference external" href="tix.html#miscellaneous-widgets">25.2.2.7. Miscellaneous Widgets</a></li>
<li class="toctree-l3"><a class="reference external" href="tix.html#form-geometry-manager">25.2.2.8. Form Geometry Manager</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference external" href="tix.html#tix-commands">25.2.3. Tix Commands</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference external" href="scrolledtext.html">25.3. <tt class="docutils literal"><span class="pre">ScrolledText</span></tt> &#8212; Scrolled Text Widget</a></li>
<li class="toctree-l1"><a class="reference external" href="turtle.html">25.4. <tt class="docutils literal"><span class="pre">turtle</span></tt> &#8212; Turtle graphics for Tk</a><ul>
<li class="toctree-l2"><a class="reference external" href="turtle.html#introduction">25.4.1. Introduction</a></li>
<li class="toctree-l2"><a class="reference external" href="turtle.html#overview-over-available-turtle-and-screen-methods">25.4.2. Overview over available Turtle and Screen methods</a><ul>
<li class="toctree-l3"><a class="reference external" href="turtle.html#turtle-methods">25.4.2.1. Turtle methods</a></li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#methods-of-turtlescreen-screen">25.4.2.2. Methods of TurtleScreen/Screen</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference external" href="turtle.html#methods-of-rawturtle-turtle-and-corresponding-functions">25.4.3. Methods of RawTurtle/Turtle and corresponding functions</a><ul>
<li class="toctree-l3"><a class="reference external" href="turtle.html#turtle-motion">25.4.3.1. Turtle motion</a></li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#tell-turtle-s-state">25.4.3.2. Tell Turtle&#8217;s state</a></li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#settings-for-measurement">25.4.3.3. Settings for measurement</a></li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#pen-control">25.4.3.4. Pen control</a><ul>
<li class="toctree-l4"><a class="reference external" href="turtle.html#drawing-state">25.4.3.4.1. Drawing state</a></li>
<li class="toctree-l4"><a class="reference external" href="turtle.html#color-control">25.4.3.4.2. Color control</a></li>
<li class="toctree-l4"><a class="reference external" href="turtle.html#filling">25.4.3.4.3. Filling</a></li>
<li class="toctree-l4"><a class="reference external" href="turtle.html#more-drawing-control">25.4.3.4.4. More drawing control</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#turtle-state">25.4.3.5. Turtle state</a><ul>
<li class="toctree-l4"><a class="reference external" href="turtle.html#visibility">25.4.3.5.1. Visibility</a></li>
<li class="toctree-l4"><a class="reference external" href="turtle.html#appearance">25.4.3.5.2. Appearance</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#using-events">25.4.3.6. Using events</a></li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#special-turtle-methods">25.4.3.7. Special Turtle methods</a></li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#excursus-about-the-use-of-compound-shapes">25.4.3.8. Excursus about the use of compound shapes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference external" href="turtle.html#methods-of-turtlescreen-screen-and-corresponding-functions">25.4.4. Methods of TurtleScreen/Screen and corresponding functions</a><ul>
<li class="toctree-l3"><a class="reference external" href="turtle.html#window-control">25.4.4.1. Window control</a></li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#animation-control">25.4.4.2. Animation control</a></li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#using-screen-events">25.4.4.3. Using screen events</a></li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#settings-and-special-methods">25.4.4.4. Settings and special methods</a></li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#methods-specific-to-screen-not-inherited-from-turtlescreen">25.4.4.5. Methods specific to Screen, not inherited from TurtleScreen</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference external" href="turtle.html#the-public-classes-of-the-module-turtle">25.4.5. The public classes of the module <tt class="docutils literal"><span class="pre">turtle</span></tt></a></li>
<li class="toctree-l2"><a class="reference external" href="turtle.html#help-and-configuration">25.4.6. Help and configuration</a><ul>
<li class="toctree-l3"><a class="reference external" href="turtle.html#how-to-use-help">25.4.6.1. How to use help</a></li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#translation-of-docstrings-into-different-languages">25.4.6.2. Translation of docstrings into different languages</a></li>
<li class="toctree-l3"><a class="reference external" href="turtle.html#how-to-configure-screen-and-turtles">25.4.6.3. How to configure Screen and Turtles</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference external" href="turtle.html#demo-scripts">25.4.7. Demo scripts</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference external" href="idle.html">25.5. IDLE</a><ul>
<li class="toctree-l2"><a class="reference external" href="idle.html#menus">25.5.1. Menus</a><ul>
<li class="toctree-l3"><a class="reference external" href="idle.html#file-menu">25.5.1.1. File menu</a></li>
<li class="toctree-l3"><a class="reference external" href="idle.html#edit-menu">25.5.1.2. Edit menu</a></li>
<li class="toctree-l3"><a class="reference external" href="idle.html#windows-menu">25.5.1.3. Windows menu</a></li>
<li class="toctree-l3"><a class="reference external" href="idle.html#debug-menu-in-the-python-shell-window-only">25.5.1.4. Debug menu (in the Python Shell window only)</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference external" href="idle.html#basic-editing-and-navigation">25.5.2. Basic editing and navigation</a><ul>
<li class="toctree-l3"><a class="reference external" href="idle.html#automatic-indentation">25.5.2.1. Automatic indentation</a></li>
<li class="toctree-l3"><a class="reference external" href="idle.html#python-shell-window">25.5.2.2. Python Shell window</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference external" href="idle.html#syntax-colors">25.5.3. Syntax colors</a></li>
<li class="toctree-l2"><a class="reference external" href="idle.html#startup">25.5.4. Startup</a><ul>
<li class="toctree-l3"><a class="reference external" href="idle.html#command-line-usage">25.5.4.1. Command line usage</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference external" href="othergui.html">25.6. Other Graphical User Interface Packages</a></li>
</ul>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <h4>Previous topic</h4>
            <p class="topless"><a href="shlex.html"
                                  title="previous chapter">24.2. <tt class="docutils literal docutils literal docutils literal"><span class="pre">shlex</span></tt> &#8212; Simple lexical analysis</a></p>
            <h4>Next topic</h4>
            <p class="topless"><a href="tkinter.html"
                                  title="next chapter">25.1. <tt class="docutils literal docutils literal"><span class="pre">Tkinter</span></tt> &#8212; Python interface to Tcl/Tk</a></p>
            <h3>This Page</h3>
            <ul class="this-page-menu">
              <li><a href="../_sources/library/tk.txt"
                     rel="nofollow">Show Source</a></li>
            </ul>
          <div id="searchbox" style="display: none">
            <h3>Quick search</h3>
              <form class="search" action="../search.html" method="get">
                <input type="text" name="q" size="18" />
                <input type="submit" value="Go" />
                <input type="hidden" name="check_keywords" value="yes" />
                <input type="hidden" name="area" value="default" />
              </form>
              <p class="searchtip" style="font-size: 90%">
              Enter search terms or a module, class or function name.
              </p>
          </div>
          <script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../modindex.html" title="Global Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="tkinter.html" title="25.1. Tkinter — Python interface to Tcl/Tk"
             >next</a> |</li>
        <li class="right" >
          <a href="shlex.html" title="24.2. shlex — Simple lexical analysis"
             >previous</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="../index.html">Python v2.6.2 documentation</a> &raquo;</li>

          <li><a href="index.html" >The Python Standard Library</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
      &copy; <a href="../copyright.html">Copyright</a> 1990-2009, Python Software Foundation.
      Last updated on Apr 15, 2009.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.1.
    </div>
  </body>
</html>